package com.kaiwukj.android.ufamily.di.module;

import com.kaiwukj.android.mcas.di.scope.FragmentScope;
import com.kaiwukj.android.ufamily.mvp.model.ServiceModel;
import com.kaiwukj.android.ufamily.mvp.ui.page.service.ServiceContract;

import dagger.Module;
import dagger.Provides;

@Module
public class ServiceModule {

    private ServiceContract.View view;
    private ServiceContract.DetailView detailView;
    private ServiceContract.RepairsView repairsView;
    private ServiceContract.ComplainView complainView;
    private ServiceContract.PropertyView propertyView;
    private ServiceContract.CommunityNoticeView communityNoticeView;
    private ServiceContract.CommunityNewView communityNewView;
    private ServiceContract.GMOrderView gmOrderView;

    public ServiceModule(ServiceContract.PropertyView view) {
        this.propertyView = view;
    }

    public ServiceModule(ServiceContract.RepairsView repairsView) {
        this.repairsView = repairsView;
    }

    public ServiceModule(ServiceContract.ComplainView complainView) {
        this.complainView = complainView;
    }

    public ServiceModule(ServiceContract.DetailView view) {
        this.detailView = view;
    }

    public ServiceModule(ServiceContract.View view) {
        this.view = view;
    }

    public ServiceModule(ServiceContract.CommunityNoticeView view) {
        this.communityNoticeView = view;
    }

    public ServiceModule(ServiceContract.CommunityNewView view) {
        this.communityNewView = view;
    }

    public ServiceModule(ServiceContract.GMOrderView view) {
        this.gmOrderView = view;
    }

    @FragmentScope
    @Provides
    public ServiceContract.CommunityNoticeView provideCommunityView() {
        return communityNoticeView;
    }

    @FragmentScope
    @Provides
    public ServiceContract.PropertyView providePropertyView() {
        return propertyView;
    }

    @FragmentScope
    @Provides
    public ServiceContract.RepairsView provideRepairsView() {
        return repairsView;
    }

    @FragmentScope
    @Provides
    public ServiceContract.ComplainView provideComplainView() {
        return complainView;
    }

    @FragmentScope
    @Provides
    public ServiceContract.View provideView() {
        return view;
    }

    @FragmentScope
    @Provides
    public ServiceContract.DetailView provideDetailView() {
        return detailView;
    }

    @FragmentScope
    @Provides
    public ServiceContract.CommunityNewView provideCommunityNewView() {
        return communityNewView;
    }

    @FragmentScope
    @Provides
    public ServiceContract.GMOrderView provideGMOrderView() {
        return gmOrderView;
    }

    @FragmentScope
    @Provides
    public ServiceContract.Model provideModel(ServiceModel model) {
        return model;
    }


}
